

class IncricaoCadastroPassGrupoEspecifico {
    static belongsTo =  IncricaoCadastroPass
    static hasMany = [incricaoCadastroPassGrupoEspecificoItens: IncricaoCadastroPassGrupoEspecificoItens]
    Date dataDeCadastro = new Date()
    IncricaoCadastroPass incricaoCadastroPass
    Integer especifico = 0
    Integer alteracoes = 0
    Boolean ativo = false
    Boolean submetePassEspecifico = false
    Date dataEnvioPassEspecifico

    static constraints = {
        dataDeCadastro(blank:false, nullable:false)
        incricaoCadastroPass(blank:false, nullable:false)
        especifico(blank:false, nullable:false,unique:['incricaoCadastroPass'])
        alteracoes(blank:false, nullable:false)
        ativo(blank:true, nullable:true)
        submetePassEspecifico (blank:true, nullable:true )
        dataEnvioPassEspecifico (blank:true, nullable:true )
    }

    static mapping = {
        table "TB_INSCRICAO_CADASTRO_PASS_GRUPO_ESPECIFICO"
        id generator: 'sequence' ,params:[sequence:'tb_inscricao_cadastro_grupo_pai_especifico_seq']
        incricaoCadastroPassGrupoEspecificoItens cascade:'all-delete-orphan'
        version false
        id column : 'INCRICAO_CADASTRO_PASS_GRUPO_ESPECIFICO_ID'
        dataDeCadastro column : "DT_DATA_CADASTRO"
        incricaoCadastroPass column : "INCRICAO_CADASTRO_PASS_ID"
        especifico column : "NU_ESPECIFICO"
        alteracoes column : "NU_ALTERACOES"
        ativo column : "TP_ATIVO"
        submetePassEspecifico column : 'TP_SUBMETE_PASS'
        dataEnvioPassEspecifico column : "DT_ENVIO_PASS"
    }

    public static verificaItensEspecificos(id) {
        return IncricaoCadastroPassGrupoEspecifico.get(id).incricaoCadastroPassGrupoEspecificoItens.itens.sum().findAll{ it != ',' && it != '0' }.size()
       
    }

    public static verificaItensEspecificosTotal(id) {
        return IncricaoCadastroPassGrupoEspecifico.get(id).incricaoCadastroPassGrupoEspecificoItens.itens.sum().findAll{ it != ',' }.size()
    }

    public static verificaSeExisteItemNaoPreenchido(id) {
     return !IncricaoCadastroPassGrupoEspecifico.get(id).incricaoCadastroPassGrupoEspecificoItens.itens.sum().contains('0')
    }

}
